package com.yesep.learn.design.creational.factory;

import com.yesep.learn.design.common.pojo.*;

/**
 * 工厂方法模式是一种创建型设计模式，它提供了一种创建对象的最佳方式。
 * 在工厂方法模式中，我们在父类中定义一个创建对象的接口，但让子类决定实例化哪一个类。工厂方法让类的实例化推迟到子类。
 * <p>
 * 工厂方法模式的基本结构
 * Creator (抽象工厂)：定义一个创建产品对象的接口。
 * Concrete Creator (具体工厂)：实现抽象工厂接口，负责创建具体的产品对象。
 * Product (抽象产品)：定义产品的接口。
 * Concrete Product (具体产品)：实现抽象产品的接口。
 */
public interface IAnimalFactoryMethod<T extends Animal> {
    T createAnimal(String name);
}
